/**
 * com.chaeron.GPS - An API for access to GPS devices.
 *
 *
 * Copyright (c) 2001, 2002 Chaeron Corporation,
 * All rights reserved.
 * 
 * Chaeron grants you a non-exclusive license to use, modify and re-distribute
 * this program under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version, provided that this copyright notice and 
 * license appear on all copies of the software.
 * 
 * Software is provided "AS IS," without a warranty of any kind. ALL EXPRESS OR
 * IMPLIED REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE
 * HEREBY EXCLUDED. THE ENTIRE RISK ARISING OUT OF USING THE SOFTWARE IS ASSUMED
 * BY THE LICENSEE. See the GNU General Public License for more details.
 *
 * CHAERON AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY
 * LICENSEE OR ANY THIRD PARTY AS A RESULT OF USING OR DISTRIBUTING SOFTWARE.
 * IN NO EVENT WILL CHAERON OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE,
 * PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL
 * OR PUNITIVE DAMAGES, HOWEVER CAUSED AN REGARDLESS OF THE THEORY OF LIABILITY,
 * ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE, EVEN IF CHAERON HAS
 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

 * @version     1.02
 * @author      Andrzej Jan Taramina, Chaeron Corporation
 *              andrzej@chaeron.com
 */

package com.chaeron.GPS.exception;

//***************************************************************************
//*
//*     Imports
//*
//***************************************************************************/

//***************************************************************************
//*
//*     GPSPacketException class definition
//*
//***************************************************************************/

/**
 * The GPSPacketException class
 *
 */

public class GPSPacketException extends GPSException
{
	
	//***************************************************************************
	//*
	//*     Constant definitions
	//*
	//***************************************************************************/
	
	/**
	 * The constant for an Invalid Packet ID Condition
	 */
	public final static int 		EXCEPTION_PACKETID_INVALID 		= EXCEPTION_CODE_UNKNOWN + 1;
	
	/**
	 * The constant for an Invalid Packet Length Condition
	 */
	public final static int 		EXCEPTION_PACKETLENGTH_INVALID 	= EXCEPTION_CODE_UNKNOWN + 2;
	
	/**
	 * The constant for an Invalid number of fields Condition
	 */
	public final static int 		EXCEPTION_NUMFIELDS_INVALID 	= EXCEPTION_CODE_UNKNOWN + 3;
	
	/**
	 * The constant for an Invalid Checksum Condition
	*/
	public final static int 		EXCEPTION_INVALID_CHECKSUM 		= EXCEPTION_CODE_UNKNOWN + 4;
	
	
	//***************************************************************************
	//*
	//*     Constructors
	//*
	//***************************************************************************/

	/**
	 * Constructs a <code>GPSSerialPortException</code>. This is thrown if a connection is
	 * open when it should be closed, or vice versa. 
	 *
	 *@param  code	the connection code for the exception
	 */
	
	public GPSPacketException( int code ) 
	{
		super( "GPS Packet", code );
		
		exceptionMessages = new String[] {
			null,
			"Packet ID invalid",
			"Packet Length invalid",
			"Number of fields invalid",
			"Checksum invalid"
		}; 
	}

}
